In a various network devices, a packet processing module is configured to perform one or more predefined processing operations. Ingress data units are received at the network device, and the packet processing module selectively stores the data units in a cache following processing. One or more programmable processing cores, separate from the packet processing module, selectively fetch the data units from the cache for further processing.
However network traffic often-times arrives in bursts. Although the packet processing module may perform its processing operations at a sufficiently fast rate to accommodate bursts of network traffic, the one or more processing cores may not be able to fetch data units from the cache fast enough to prevent overflow of the cache. Typically, when the cache overflows, some data units will be lost from the cache.